﻿using System.Collections.Generic;
using System.ComponentModel;
using System.Xml.Linq;

namespace MassIntellect.WorkIt
{
	/// <summary>
	/// Выборщик элементов без пространств имен
	/// </summary>
	[Description("Выборщик элементов без пространств имен")]
	public class NamespaceCutter : IXmlSelector
	{
		#region IXmlSelector Members

		public IWorkFrame Owner { get; set; }

		public IEnumerable<XElement> Select(XElement xe)
		{
			yield return CutNamespaces(XElement.Parse(xe.ToString()));
		}

		private XElement CutNamespaces(XElement xe)
		{
			xe.Name = XNamespace.None + xe.Name.LocalName;
			var xa = xe.Attribute("xmlns");
			if (xa != null)
			{				
				xa.Remove();
			}
			foreach (var xElement in xe.Elements())
				CutNamespaces(xElement);
			return xe;
		}


		#endregion
	}
}